<?php
/**
 * 公共函数库
 */

/**
 * 根据角色 ID，查询权限，返回许用模块列表
 *
 * @param int $roleId 角色 ID
 * @return array 许用模块列表
 * @author 丘翔 <qiuxiang55aa@gmail.com>
 */
function allows($roleId) {
    $role = D('Role')->where(array(
        'id' => $roleId))->relation(true)->find();
    foreach ($role['modules'] as $module)
        $modules[$module['name']] = $module['description'];
    return $modules == null ? array() : $modules;
}

/**
 * 将一个 module 名或 action 名映射成 icon 名
 *
 * @param string $name module 名或 action 名
 * @return string icon 名
 * @author 丘翔 <qiuxiang55aa@gmail.com>
 */
function iconMap($name) {
    switch (strtolower($name)) {
        case 'home':
        case 'index':
            return 'home';
            break;

        case 'manage':
            return 'wrench';
            break;

        case 'personal':
            return 'user';
            break;

        case 'email':
            return 'envelope';
            break;

        case 'member':
            return 'group';
            break;

        case '网络部':
        case '技术部':
            return 'code';
            break;

        case '设计部':
            return 'picture';
            break;

        case '论坛部':
            return 'comments-alt';
            break;

        case '电视台':
            return 'desktop';
            break;

        case '采编部':
            return 'pencil';
            break;

        case '办公室':
            return 'file-text-alt';
            break;
    }
}

/**
 * 根据许用列表生成 navs
 *
 * @param array $allows 许用列表
 * @return array navs
 * @author 丘翔 <qiuxiang55aa@gmail.com>
 */
function navsGenerate($allows) {
    foreach ($allows as $module => $name) {
        $navs[] = array(
            'name' => $name,
            'module' => $module,
            'url' => U("{$module}/index"),
            'icon' => iconMap($module),
        );
    }
    return $navs;
}

/**
 * 判断用户是否已经登录
 *
 * @return bool
 * @author 丘翔 <qiuxiang55aa@gmail.com>
 */
function logined() {
    if (!isset($_SESSION)) session_start();
    return isset($_SESSION['user']);
}
